package request

type Empty struct{}

// PageInfo Paging common input parameter structure
type PageInfo struct {
	*QueryParam
	Page     int `json:"page" form:"page" default:"1"`           // 页码
	PageSize int `json:"pageSize" form:"pageSize"  default:"10"` // 每页大小
}

type IdPathParam struct {
	*PathParam
	Id uint64 `json:"id" form:"id"` // 页码
}

// IdTokenParam 默认授权成功的用户id结构体
type IdTokenParam struct {
	*TokenParam
	Id uint64 `json:"id" form:"id"` // 页码
}

type QueryParam struct {
}
type PathParam struct {
}
type BindParam struct {
}
type TokenParam struct {
}

func (p *PageInfo) Init() {
	if p.Page == 0 {
		p.Page = 1
	}
	if p.PageSize == 0 {
		p.PageSize = 10
	}
}
func (p *PageInfo) GetPage() int {
	if p.Page == 0 {
		return 1
	}
	return p.Page
}

func (p *PageInfo) GetPageSize() int {
	if p.PageSize == 0 {
		return 10
	}
	return p.PageSize
}

// GetById Find by id structure
type GetById struct {
	ID uint `json:"id" form:"id"` // 主键ID
}

func (r *GetById) Uint() uint {
	return uint(r.ID)
}

type IdsReq struct {
	Ids []int `json:"ids" form:"ids"`
}

// GetAuthorityId Get role by id structure
type GetAuthorityId struct {
	AuthorityId string `json:"roleId" form:"roleId"` // 角色ID
}

func NotEmpty() string {
	return "notEmpty"
}

type Rules map[string][]string
